module.exports = (app) => {
  const { dict, constant } = app.config
  const { Schema, createModel, getModelName, pre } = app.jax.mongoose
  const modelName = getModelName(__filename)

  const schema = new Schema({
    categoryName: String, // 分类名称

    rank: { type: Number, set: (value) => Number(value) || null }, // 序号
    isTop: { type: Boolean, default: false }, // 是否置顶，序号设置后自动置顶

    // app: { type: Number, default: 0 }, // 所属板块
  })

  // 修改
  schema.pre(['updateOne', 'findOneAndUpdate', 'updateMany'], function () {
    const data = this.getUpdate()
    pre.getRank(data)
  })

  // 新增
  schema.pre('save', function () {
    pre.getRank(this)
  })

  // 所属板块
  // schema.virtual('appDesc').get(function () {
  //   return dict.articleApp[this.app] || '未知'
  // })

  const Model = createModel(modelName, schema)

  return Model
}
